Асм.отд
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы
 
 glagol.png Программируем по-русски
 

Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку.

Издатель Глагола
 

 
(*~\Глагол\Отделы\Иное~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(**)                        ОТДЕЛ Асм-;             (* Задачи без УКАЗ(аний) *)
(*============================================================================*)
(* НАЗНАЧЕНИЕ: дополнительные задачи на ассемблере                            *) 
(*============================================================================*)
ИСПОЛЬЗУЕТ
   ОБХОД;
ПОСТ
  (* возможные значения ответа задачи Особенность *)
  Число-    = 0;
  МинусБеск-= 1;
  ПлюсБеск- = 2;
  НеЧисло-  = 3;

(*----------------------- Математические функции -----------------------------*)

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Особенность-(x:ШИРВЕЩ):ЦЕЛ; 
(* Определяет состояние < x >
 * Ответ: {Число,МинусБеск,ПлюсБеск,НеЧисло} *)
КОН Особенность;
 
(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА СлучНач-(x:ЦЕЛ);
(* начальная установка последовательности псевдослучайных чисел *)
КОН СлучНач;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА СлучЦел-():ЦЕЛ;
КОН СлучЦел;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА sin-(x:ШИРВЕЩ):ШИРВЕЩ; 
КОН sin;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА cos-(x:ШИРВЕЩ):ШИРВЕЩ; 
КОН cos;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА sincos-(x:ШИРВЕЩ; sinX+,cosX+:ШИРВЕЩ);
КОН sincos;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА arctg-(x:ШИРВЕЩ):ШИРВЕЩ; 
КОН arctg;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ln-(x:ШИРВЕЩ):ШИРВЕЩ; 
КОН ln;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА exp-(x:ШИРВЕЩ):ШИРВЕЩ; 
КОН exp;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА квкор-(x:ШИРВЕЩ):ШИРВЕЩ;                    (* квадратный корень *)
КОН квкор;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Порядок-(x+:ШИРВЕЩ):ЦЕЛ;
(* Выделить мантиссу и порядок у числа < x >
 *----------------------------------------------------------------------------*
 * До:    < x > - исходное число
 * После: < x > - мантисса 
 * Ответ: порядок < x > *)
КОН Порядок;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ВЦифры-(x:ШИРВЕЩ; цифр:ЦЕЛ; цифры+:ЦЕПЬ);
(* Переводит < x > в десятичное представление
 *----------------------------------------------------------------------------*
 * До:    < x >   - исходное число (0 <= x < 10)
 *        <цифр>  - требуется цифр после запятой
 *        ДЛ(<цифры>) должна быть больше <цифр> и больше 18!
 * После: <цифры[0]> - десятки < x >
 *        <цифры[1]> - единицы < x >
 *        <цифры[2..цифр]> - цифры < x > после запятой *)
КОН ВЦифры;


(*----------------------- Работа с битами ------------------------------------*)

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Сдвиг-(ч,р:ЦЕЛ):ЦЕЛ;
(* Двоичный сдвиг целого числа, т.е. логический (LSH)
 *----------------------------------------------------------------------------*
 * До:    <ч> - исходное число
 *        <р> - счетчик разрядов
 *              если <р> > 0, то в сторону старшего разряда
 *              если <р> < 0, то в сторону младшего разряда
 * Ответ: сдвинутое число *)
КОН Сдвиг;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ЗнаковыйСдвиг-(ч,р:ЦЕЛ):ЦЕЛ;
(* Двоичный сдвиг целого числа с сохранением знака, т.е. арифметический (ASH)
 *----------------------------------------------------------------------------*
 * До:    <ч> - исходное число
 *        <р> - счетчик разрядов
 *              если <р> > 0, то в сторону старшего разряда
 *              если <р> < 0, то в сторону младшего разряда
 * Ответ: сдвинутое число *)
КОН ЗнаковыйСдвиг;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Вращение-(ч,р:ЦЕЛ):ЦЕЛ;
(* Двоичное вращение целого числа
 *----------------------------------------------------------------------------*
 * До:    <ч> - исходное число
 *        <р> - счетчик разрядов
 *              если <р> > 0, то в сторону старшего разряда
 *              если <р> < 0, то в сторону младшего разряда
 * Ответ: перевёрнутое число *)
КОН Вращение;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Сдвиг64-(ч:ОБХОД.Цел64; р:ЦЕЛ):ОБХОД.Цел64;
(* Двоичный сдвиг целого числа, т.е. логический (LSH)
 *----------------------------------------------------------------------------*
 * До:    <ч> - исходное число
 *        <р> - счетчик разрядов
 *              если <р> > 0, то в сторону старшего разряда
 *              если <р> < 0, то в сторону младшего разряда
 * Ответ: сдвинутое число *)
КОН Сдвиг64;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ЗнаковыйСдвиг64-(ч:ОБХОД.Цел64; р:ЦЕЛ):ОБХОД.Цел64;
(* Двоичный сдвиг целого числа с сохранением знака, т.е. арифметический (ASH)
 *----------------------------------------------------------------------------*
 * До:    <ч> - исходное число
 *        <р> - счетчик разрядов
 *              если <р> > 0, то в сторону старшего разряда
 *              если <р> < 0, то в сторону младшего разряда
 * Ответ: сдвинутое число *)
КОН ЗнаковыйСдвиг64;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА Вращение64-(ч:ОБХОД.Цел64; р:ЦЕЛ):ОБХОД.Цел64;
(* Двоичное вращение целого числа
 *----------------------------------------------------------------------------*
 * До:    <ч> - исходное число
 *        <р> - счетчик разрядов
 *              если <р> > 0, то в сторону старшего разряда
 *              если <р> < 0, то в сторону младшего разряда
 * Ответ: перевёрнутое число *)
КОН Вращение64;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ШирСдвиг-(ч:ШИРЦЕЛ; р:ЦЕЛ):ШИРЦЕЛ;
КОН ШирСдвиг;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ШирЗнаковыйСдвиг-(ч:ШИРЦЕЛ; р:ЦЕЛ):ШИРЦЕЛ;
КОН ШирЗнаковыйСдвиг;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ШирВращение-(ч:ШИРЦЕЛ; р:ЦЕЛ):ШИРЦЕЛ;
КОН ШирВращение;


(*----------------------- Разное ---------------------------------------------*)

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ОбнулитьПамять-(адрес,размер:ЦЕЛ);            (* размер в байтах *)
КОН ОбнулитьПамять;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА ПриёмникиДПБ-(hInstance+,reason+,param+:ЦЕЛ);
КОН ПриёмникиДПБ;

КОН Асм.

 
 


Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com

 
Главная     ◄Глагол     ◄Азбука     ◄Задачи на Глаголе     Примеры приложений ►   Среда разработки ►   Отладка программ ►   Отличия от Оберона ►   Отличия от Паскаля ►   Ассемблер ARM ►   Глагол для ARM ►   ? и Ответы